apache 不记录指定文件类型日志

        如果一个站点访问量特别大,那么访问日志就会很多。但有一些访问日志其实可以忽略掉的,比如网站的一些图片,还有 js,css 等静态对象。而这些文件的访问往往是巨量的,而且即使记录这些日志也没有什么用,如何忽略掉这些访问日志呢?

        相关配置为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@lamp ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
SetEnvIf Request_URI \.jpg$ image-request
SetEnvIf Request_URI \.JPG$ image-request
SetEnvIf Request_URI \.png$ image-request
SetEnvIf Request_URI \.js$ image-request
SetEnvIf Request_URI \.bmp$ image-request
SetEnvIf Request_URI \.css$ image-request
SetEnvIf Request_URI \.mid$ image-request
SetEnvIf Request_URI \.swf$ image-request
SetEnvIf Request_URI \.mmf$ image-request
SetEnvIf Request_URI \.wma$ image-request
SetEnvIf Request_URI \.midi$ image-request
ErrorLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-error_%Y%m%d_log 86400"
CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" combined env=!image-request

        说明:在原来日志配置的基础上,增加了一些 image-request 的定义,比如把 gif 、jpg、bpm、swf、js、css 等结尾的全标记为 image-request 。谈后在配置日志的时候加一个标记 env=!image-request ,这里有个叹号,表示取反,这样就可以把这些忽略了。